package com.hkemmm.AOP.advice;

import org.aspectj.lang.annotation.After;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.springframework.stereotype.Component;

@Component      //ioc控制
@Aspect         //
public class CommonLogAdvice {
    // 定义不同类型的增强/通知的方法，也就是增强的业务逻辑处理的方法
    /*
    @Before /@After 配置不同类型的增强通知；
    execution(* com.yuw.service..*.*(..))：构成切面的切入点的范围；
        解析：  * 返回值类型，为任意类型；
               com.hkemmm.service 构成切入点的包路径名
               ..* 表示这个包路径下的所有的子类
               * 括号前面这个* 表示 任意的方法名
               (..) 表示构成切入点的方法的参数列表；参数为任意个数；

        符合要求的方法在不同状态时会先执行相应增强通知
     */


    @Before("execution(* com.hkemmm.service..*.*(..))")
    public void doBeforLogging(){
        System.out.println("这里进行了前置增强：切入点的日志.....");
    }

    @After("execution(void com.hkemmm.service..*.*(..))")
    public void doAfterLogging(){
        System.out.println("这里进行了后置增强：切入点的日志22222.....");
    }

}
